package com.ruoyi.util.file;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class CreUpdFile {
	
//	public static void main(String[] args) {
//	  	String folderPath = "D:/test123456";
////	  	List<String> fileNameList = Arrays.asList("张三","李四","王五","赵六","刘七","王八");
////		int num = CreUpdFile.createrFile(folderPath, fileNameList, FileOrFolder.file, ".txt");
////		System.out.println(num);
//		int num = updateFilename(folderPath);
//		System.out.println(num);		
//	}

	public static enum FileOrFolder {
		file, folder;
	}

	// 批量创建文件或文件夹
	public static int createrFile(String folderPath, List<String> fileNameList, FileOrFolder fileOrFolder,
			String filetype) {
		int num = 0;
		// 正式项目就用这个--> StringUtils.isNotBlank("filePath")
		// 现在这个是为了方便移植和测试
		if (folderPath != null && !folderPath.equals("") && fileNameList != null && fileNameList.size() > 0) {
			if (fileOrFolder.name().equals(FileOrFolder.folder.name())) {
				for (String fileName : fileNameList) {
					String filepath = folderPath + "/" + fileName;
					File file = new File(filepath);
					// 判断文件夹是否存在
					if (!file.exists()) {
						// 创建文件夹
						if (file.mkdirs()) {
							num ++;
							System.out.println("创建" + filepath + "成功");
						} else {
							System.out.println("创建" + filepath + "失败");
						}
					}

				}
			} else if (fileOrFolder.name().equals(FileOrFolder.file.name())) {
				if (filetype != null && !filetype.equals("")) {
					try {
						for (String fileName : fileNameList) {
							String filepath = folderPath + "/" + fileName + filetype;
							File file = new File(filepath);
							if (file.createNewFile()) {
								num ++;
								System.out.println("文件" + filepath + "创建成功");
							} else {
								System.out.println("文件" + filepath + "创建失败");
							}
						}
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
		}
      return num;
	}

	/**
	 * @Description: 修改文件夹下的文件名称
	 * @author syc
	 * @date: 2022年8月24日 下午6:18:46
	 *	修改文件名称的规则太多,并没统一的方法,所以没办法写出一个公共方法
	 */
    public static int updateFilename(String filePath) {
    	 int n = 0;
    	 File file = new File(filePath);
    	 if (file.exists() && file.isDirectory()) {
    		 File[] list = file.listFiles();
    		 for (File file2 : list) {
    			 if(file2.isFile()) {
    				String filePathName = file2.getAbsolutePath();
    				// 给前面就夹 123
    				filePathName =filePathName.substring(0,filePathName.lastIndexOf("\\") + 1) + "123" + filePathName.substring(filePathName.lastIndexOf("\\") + 1); 
    				File dest = new File(filePathName); 
    				file2.renameTo(dest);
    				System.out.println(dest.getName());
    				n++;
    			 } 
			}
    	 }
       return n;
    }
    
    
    
    
//    public static void main(String[] args) {
//    //  首先找到需要修改文件的文件夹，也可以像我这样将文件拷贝到一个我们容易找到的文件夹
//    	 File file = new File("D//123");
//        
//        if (file.exists() && file.isDirectory()) {
//            for (int i = 0; i < list.length; i++) {
//                String name = list[i].getName();
//                //  我这里是通过下标来找到字符串的位置，也可以有很多种方式，比如，lastIndexOf()
//                //  具体请学习String的常用方法
//                int index = name.indexOf(0);
//                //  接下来就是将文件名修改 【XXX项目】+你截取的字符串
//                //  我截取的是整条文件名
//                //  也可以通过i进行排列，比如：加上i+"、"就会变成  1、【XXX项目】文件名称
//                String name2 = "【XXX项目】"+name.substring(index + 1);
//                //  将文件保存回aaa文件夹，也可存放在其他你需要保存的地方
//                File dest = new File("d:/aaa" + "/" + name2);
//                list[i].renameTo(dest);
//                System.out.println(dest.getName());
//            }
//        }
//    }
//}

		
	
//	public static void main(String[] args) throws IOException {
//		String directoryPath = "e:\\mytemp";
//		File file = new File(directoryPath);
//		if (!file.exists()) {
//			// 创建文件夹
//			if (file.mkdirs()) {
//				System.out.println("创建" + directoryPath + "成功");
//			} else {
//				System.out.println("创建" + directoryPath + "失败");
//			}
//		}
//		String filePath = directoryPath + "\\hello.txt";
//		File file2 = new File(filePath);
//		if (file2.exists()) {
//			System.out.println("该文件已存在,不能重复创建");
//		} else {
//			// 创建文件
//			if (file2.createNewFile()) {
//				System.out.println("文件创建成功");
//				// 写入内容
//				BufferedWriter writer = new BufferedWriter(new FileWriter(filePath));
//				writer.write("hello,world~ 编程快乐");
//				writer.close();
//			} else {
//				System.out.println("文件创建失败");
//			}
//		}
//	}

	
	
}
